package animals;

abstract  class animal{
    String name="小黑";
    public abstract void call();//叫声的抽象方法,没法明确是什么动物叫
    //public abstract void eat();//吃的抽象方法,没法明确是什么动物吃
    public String getName() {
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public void eat(){//吃的方法
        System.out.println("动物什么都吃");
    }
}
 class Cat extends animal implements A,B{
    String name="小白";
    public void call() {
        System.out.println(super.name+"喵喵叫");
        System.out.println(this.name+"喵喵叫");
    }
    public void eat() {
        System.out.println(name+"的猫正在吃鱼");
    }
    public void DaiMa(){//自己特有的功能
        System.out.println(name+"正在敲代码");
    }
    public void Game() {
        System.out.println(name+":打游戏");
    }
    public void TingYinLe() {
        System.out.println(name+"正在听音了");
    }
}
interface A{
    abstract public  void Game();//打游戏的能力
}
interface B{
    abstract public  void TingYinLe();//听音乐的能力
}

public class Lconog {
public static void main(String[] args) {
    animal xb = new Cat();
    System.out.println(xb.name);//多态变量:编译看左侧，运行也看左侧。
    xb.eat();//多态方法:编译看左侧，运行看右侧。
    ((Cat)xb).eat();//向下转型
   // xb.DaiMa(); /*为什么这个就没法运行，因为animal左侧没有，这个方法，所以编译失败*/

}
}